package org.easy.socket.client.mamager;

import org.smartboot.socket.transport.AioQuickClient;
import org.smartboot.socket.transport.AioSession;
import org.smartboot.socket.transport.WriteBuffer;

/**
 * 操作接口
 * @author wuxueli
 */
public interface IOperator {

    /**
     * 启动
     */
    void start();

    /**
     * 获取写入缓冲区
     * @return WriteBuffer
     */
    WriteBuffer getWriteBuffer();

    /**
     * 设置会话
     * @param session 会话
     */
    void setSession(AioSession session);

    /**
     * 获取会话
     * @return AioSession
     */
    AioSession getSession();

    /**
     * 创建AioQuickClient
     * @return AioQuickClient
     */
    AioQuickClient create();

    /**
     * 发送数据
     * @param data 数据
     */
    void send(String data);

    /**
     * 设置是否开启心跳
     * @param flag 是否开启
     */
    void setStartHeart(boolean flag);

    /**
     * 设置开启重连
     * @param flag 是否开启
     */
    void setReConnected(boolean flag);

    /**
     * 关闭
     */
    void close();

}
